package cl.obam.laPalmera.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.LinkedList;
import java.util.List;

import org.apache.log4j.Logger;

import cl.obam.laPalmera.DTO.ComunaDTO;

public class ComunaDAO extends AbstractDAO{ 
	
	private static final Logger LOGGER = Logger.getLogger(ComunaDAO.class);
	
    private String codigoComuna="";
    private String nombreComuna="";
    private String codigoCiudad="";
    
    public List consultar(ComunaDTO comunaDTO) {
    	
    	Connection con = null;
    	PreparedStatement ps = null;
    	ResultSet rs = null;
        
    	List<ComunaDTO> list = null;
        StringBuilder sql	= null;
        
      	try {
      		sql	= new StringBuilder();
      		sql.append("select * from comuna where 1 = 1 ");
      		if (!("").equals(comunaDTO.getCodigoComuna())) sql.append("and codigoComuna = " + comunaDTO.getCodigoComuna() + " ");
            if (!("").equals(comunaDTO.getNombreComuna())) sql.append("and nombreComuna = " + comunaDTO.getNombreComuna() + " "); 
            if (!("").equals(comunaDTO.getCodigoCiudad())) sql.append("and codigoCiudad = " + comunaDTO.getCodigoCiudad() + " ");
      		
            con = conectionMySql();
            ps = con.prepareStatement(sql.toString());           
            
            rs = ps.executeQuery();
            
            if (rs.next()) list = new LinkedList<ComunaDTO>();
            while (rs.next()) {
        		ComunaDTO puntero = new ComunaDTO();
        		puntero.setCodigoComuna(rs.getString(1));
        		puntero.setNombreComuna(rs.getString(2));
        		puntero.setCodigoCiudad(rs.getString(3));
        		list.add(puntero);
            }
            rs.close();
            ps.close();
            con.close();
            
        } catch (Exception e) {
        	LOGGER.error(e.getMessage());
        }
        return list;
    }

	public String getCodigoCiudad() {
		return codigoCiudad;
	}

	public void setCodigoCiudad(String codigoCiudad) {
		this.codigoCiudad = codigoCiudad;
	}

	public String getCodigoComuna() {
		return codigoComuna;
	}

	public void setCodigoComuna(String codigoComuna) {
		this.codigoComuna = codigoComuna;
	}

	public String getNombreComuna() {
		return nombreComuna;
	}

	public void setNombreComuna(String nombreComuna) {
		this.nombreComuna = nombreComuna;
	}
} 
